This page last changed on Apr 17, 2012 by brian.

Overview

In order to automate the image processing, we need to know the layout of the spots as they were defined in the original GAL file. The instructions below illustrate the steps needed to extract this information.

Processing the GAL File

Reading the Gene Array Layout (GAL) File

In order to automate the image analysis, the location of each treatment spot on a filter needs to be known. At MBARI, we use a custom text format to describe the application of spots by the piezzo electric printer. Each printer run prints a number of ESP filters on a single filter sheet. Each individual filter is subsequently cut from the filter sheet. A complete GAL file can be read using:

import java.io.File
import java.net.URL
import org.mbari.esp.ia.services.GeneArrayAnalysisService
import org.mbari.esp.ia.services.ToolBox
// READ GAL FILE
val geneArrayIOService = ToolBox.geneArrayIOService
val allGalPoints = geneArrayIOService.read(new URL("file:/test07/110220hab5wcomp_2011-03-07_150545_Run.txt"))
// CREATE IMAGE
val bufferedImage1 = GeneArrayAnalysisService.toBufferedImage(allGalPoints, true, 100, 2)
val imageIOService = ToolBox.imageIOService
imageIOService.write(bufferedImage1, new File("110220hab5wcomp_2011-03-07_150545_Run.png"))

This produces the following image:

Subsetting the GAL Points

For our analysis, we only want the points that represent a single filter. In order to exclude the others we just subset the GAL points using:

// SUBSET - 12500 is a square in microns from the upper left corner of the GAL image
val galPoints = GeneArrayAnalysisService.filterSingleSpot(allGalPoints, 12500)
// CREATE IMAGE
val bufferedImage2 = GeneArrayAnalysisService.toBufferedImage(galPoints, true, 20, 10)
imageIOService.write(bufferedImage2, new File("110220hab5wcomp_2011-03-07_150545_Run-single.png"))

Document generated by Confluence on Feb 03, 2026 14:16